System and method for transmission of data

ABSTRACT

A system and method for data communication connecting on-line networks with on-line and off-line computers. The present system provides for broadcast of up to the minute notification centric information thereby providing an instant call to action for users who are provided with the ability to instantaneously retrieve further detailed information. The notification centric portions of information is wirelessly broadcast to wireless receiving devices which are attached to computing devices. Upon receipt of the information at the personal computer, the user is notified through different multimedia alerts that there is an incoming message. Wirelessly broadcasted URL&#39;s, associated with the data, are embedded in data packets and provide an automated wired or wireless connection back to the information source for obtaining detailed data.

RELATED APPLICATION INFORMATION

This patent is a continuation of application Ser. No. 13/905,393, filedMay 30, 2013, which issued as U.S. Pat. No. 8,656,048, which is acontinuation of application Ser. No. 11/409,396, filed Apr. 21, 2006,which issued as U.S. Pat. No. 8,489,707.

Application Ser. No. 11/409,396 is a continuation of application Ser.No. 09/350,467, filed Jul. 9, 1999, which issued as U.S. Pat. No.7,035,914. U.S. Pat. No. 7,035,914 was subject to reexamination, ControlNo. 90/009,906, in which the patentability of all subject claims wasconfirmed.

Application Ser. No. 09/350,467 is a continuation of application Ser.No. 08/788,613, filed Jan. 24, 1997, which issued as U.S. Pat. No.6,021,433. U.S. Pat. No. 6,021,433 was subject to reexamination, ControlNo. 90/009,904, in which the patentability of all subject claims wasconfirmed.

Application Ser. No. 08/788,613 claims the benefit of: ProvisionalApplication No. 60/010,651, filed on Jan. 26, 1996; ProvisionalApplication No. 60/014,341, filed on Mar. 29, 1996; ProvisionalApplication No. 60/014,735, filed on Apr. 1, 1996; and ProvisionalApplication No. 60/026,471, filed on Sep. 23, 1996.

Application Ser. No. 09/350,468 filed Jul. 9, 1999, claims priority fromapplication Ser. No. 08/788,613.

Application Ser. No. 11/409,396 has four other continuations:application Ser. No. 13/018,420 filed Jan. 31, 2011, which issued asU.S. Pat. No. 8,572,279; application Ser. No. 13/018,421 filed Jan. 31,2011, which issued as U.S. Pat. No. 8,601,154; application Ser. No.12/871,684 filed Aug. 30, 2010, which issued as U.S. Pat. No. 8,090,803;and application Ser. No. 13/906,645 filed May 31, 2013, which issued asU.S. Pat. No. 8,639,838.

NOTICE OF COPYRIGHTS AND TRADE DRESS

A portion of the disclosure of this patent document contains materialwhich is subject to copyright protection. This patent document may showand/or describe matter which is or may become trade dress of the owner.The copyright and trade dress owner has no objection to the facsimilereproduction by anyone of the patent disclosure as it appears in thePatent and Trademark Office patent files or records, but otherwisereserves all copyright and trade dress rights whatsoever.

FIELD OF THE INVENTION

The present invention relates generally to communication systems, andmore particularly to both wired and non-wired data transmissioncommunication systems.

BACKGROUND OF THE INVENTION

Undoubtedly, computers, communications and information are drivingforces in society today. The most significant advances in computers,communications and information have been in the areas of multimedia,wireless and on-line services, respectively. Each of these technologieshave produced significant benefits and have effected nearly everyone'slife in one way or another.

In particular, more than 100 million personal computers are equippedwith multimedia hardware and software and nearly every new personalcomputer manufactured today is shipped with some form of multimedia.Multimedia has made the computer much more than a number crunching, wordprocessing tool. Rather, multimedia has turned the computer into anindispensable educational, entertainment and information tool. Bycombining the realism of sound, graphics and video, multimediaapplications have revolutionized the way individuals work, entertain andstay informed. Multimedia has also helped drive the computer industry toprovide tools which can be used by the most novice computer user makingcomputers almost as prevalent in our society as television or radios.Also, multimedia has driven manufacturers to build smaller and morepowerful and mobile systems—leading a technological revolution notmatched in our history.

Moreover, wireless communication technology has allowed individuals tobe notified anywhere and anytime of information. Wherever an individualis, i.e. whether away from the office or in the car, he or she can beinformed of information, such as new meeting schedules, dinner plans oreven life or death emergencies.

Additionally, on-line services have revolutionized the distribution ofinformation in our society by making available, to individualsthroughout the world, endless amounts of information on every subjectimaginable. The Internet and on-line services have brought together theworld through a linkage of interconnected computer systems which canshare information almost instantaneously.

These technologies suffer from numerous disadvantages, however. Thebenefits of wireless technology have only been utilized for personalmessaging offering limited message lengths and have never been utilizedas a computer peripheral, limiting the benefit of instant anytimeanywhere to personal messages of limited length and value. Consequently,information which is sent is typically old and historic.

Moreover, while popular in education and business markets, multimediahas yet to find widespread application in the consumer market. Whilevaluable in education and business circles, the average home user haslittle use for sound and full motion video. As the number of informationproviders continue to expand throughout the world, the amount of timeand effort required to find information becomes exponentially longer.

In particular, the interface to on-line services is often difficult andintimidating to novice computer users. As a result, the benefit of thisvaluable source of information is thus not available to them. Forexample, despite the wealth of information available, users are requiredto search through the myriad of information, rather than having theinformation come to them. Consequently, information is often missed.

Furthermore, immediate notification of information is not available. Forexample, users who use computer related services, such as electronicmail (E-mail), do not receive instant notification when new mail isreceived. As a result, urgent E-mail will sit unnoticed in an electronicmailbox.

Another major problem is that data transmitted over existing wirelessbroadcast networks suffer from inevitable degradation. Traditionalpaging, being a one-way transmission, can use only forward errorcorrection (FEC) on data packets. Many existing paging networks useMotorola's FLEX™, POCSAG or other wireless protocol's errorcorrection/detection capabilities. Although these industry standardprotocols provide error detection capabilities, many of them are notable to deal with burst errors or errors due to loss of synchronization.Since these protocols cannot correct all possible errors, some of thedata packets will arrive with errors or simply get lost. In most cases,truncated packets and lost packets account for the vast majority oferrors after decoding.

Similar problems exist with other forms of wireless communicationsystems as well.

What is needed therefore is a system and method for data transmission,which combines the benefits of multimedia, wireless and wired on-lineservices while addressing and overcoming their limitations.

SUMMARY OF THE INVENTION

The preceding and other shortcomings of prior art methods and systemsare overcome by the present invention which provides a system and methodfor data communication connecting on-line networks with on-line andoff-line computers. In particular, the present system provides forbroadcast of up to the minute notification centric information therebyproviding an instant call to action for users who are provided with theability to instantaneously retrieve further detailed information.Throughout the day, various pieces of information happening around theworld are currently available in a sender initiated paradigm whereindividuals have to seek out the information. In accordance with thepresent invention, the notification centric portions of that informationthat lives in an electronic medium is wirelessly broadcast on anationwide basis to wireless receiving devices which are attached topersonal computers or other computing devices. Upon receipt of theinformation at the personal computer, the user is notified throughdifferent multimedia alerts that there is an incoming message.Wirelessly broadcasted URL's, associated with the data, are embedded indata packets and provide an automated wired or wireless connection backto the information source for obtaining detailed data.

The present invention unlike other wireless systems provides for acombination of broadcast, narrowcast and pointcast transmission. Thatis, information can be transmitted wirelessly to everyone (broadcast),to a subset of users (narrow cast) or to one user (pointcast). Thepresent invention furthermore provides multiple viewers which listen tothe airwaves and have the ability to filter against the broadcast withspecific action. A message server provides different types of filterswith the ability to parse data. Additionally, the message server isdesigned such that third party developers can write different types ofmultimedia viewers which can easily be downloaded to the user system andautomatically registered with the message server. The viewers can thusbe controlled through the interface of the present invention andmultiple viewers and multiple controllers of such viewers candynamically be added and controlled. Moreover, since the messages areencoded for multimedia events, the viewers of the present invention havecapability to do different things for multimedia, such as sound, video,animation and so forth.

In operation, data parsed from a plurality of incoming data feeds fromexisting information sources is prepared for optimized wirelesstransmission and then transmitted nationwide to connected andnon-connected computing devices thereby extending the reach of existinginformation sources, such as Internet and on-line services. On the userend, once data is received, a global communications server recombines,decodes, decrypts and decompresses the incoming data. When a completedata message is formed, the communications server sends a message to theuser interface alert panel causing an animated icon to fly to the alertpanel notifying a user that a new message has arrived. Upon clicking theicon, the appropriate viewer is launched. Users can then display thecontext of the data on their computers. Based on preferences set by theuser with respect to sound, video and animation, users can be alerted toincoming messages. Wirelessly broadcasted URL's and on-line addresses,associated with the data, are embedded in multimedia viewers and providean automated wired connection/link back to the information sources toobtain detailed information. Information, such as advertisements andpromotional broadcasts, can be embedded in a multimedia viewer as wellas automatically activated on a scheduled or triggered basis.Information is thus modified and updated instantaneously and wirelessly.Additional information services can be activated wirelessly throughbroadcast activation codes which can enable or disable services.

The present invention also provides a method based on Reed-Solomon codewhich is used to derive redundant data packets thereby minimizingredundancy, and maximizing flexibility and packet recovery ability.

In accordance with another embodiment of the invention, the informationprovided from the information sources and transmitted to the centralbroadcast server to be consolidated in accordance with the presentinvention and then transmitted wirelessly nationwide to personalcomputers and other computing devices can also be sent simultaneouslyvia a wired connection to the same personal computers and computingdevices having Internet/World Wide Web (WWW) access (direct or viaon-line service providing Internet and Web access).

The foregoing and additional features and advantages of this inventionwill become apparent from the detailed description and accompanyingdrawing FIGUREs that follow. In the figures and written description,numerals indicate the various features of the invention, like numeralsreferring to like features throughout for both the drawing figures andthe written description.

DESCRIPTION OF THE DRAWINGS

FIG. 1 is schematic diagram of a wireless communication networkincluding information mirroring, selection addressing, bandwidthoptimization, message server design and URL broadcast and hotlinks inaccordance with the present invention;

FIG. 2 is a block diagram of the wireless communication networkillustrated in FIG. 1;

FIG. 3(a) is a block diagram of the head-end high-level softwarearchitecture for communication over a paging network in accordance withthe present invention;

FIG. 3(b) is a block diagram of the head-end high-level softwarearchitecture for communication over a Vertical Blanking Interval (VBI)in accordance with the present invention;

FIG. 3(c) is a block diagram of the head-end high-level softwarearchitecture for communication via satellite in accordance with thepresent invention;

FIG. 4 is a flow chart illustrating the transfer of data from thecontent manager to the wireless broadcast network;

FIG. 5(a) is a table illustrating the 8-bit binary format forinformation notification data blocks;

FIG. 5(b) is a table illustrating the 8-bit binary format forinformation notification data blocks as illustrated in FIG. 5(a);

FIG. 6 is a table illustrating the 8-bit binary format for personalalert notification data blocks;

FIG. 7 is a table illustrating the 8-bit binary format for messages;

FIG. 8 is a table illustrating the 8-bit binary format for packets;

FIG. 9 is a table illustrating the 8-bit binary format for single packetdata blocks;

FIG. 10 is a detailed schematic diagram of the message server designillustrated in FIG. 1;

FIG. 11 is an illustration of a user remote interface for controllingthe computer interface in accordance with the present invention;

FIG. 12 is a flow chart of an algorithm for extracting and processingthe Internet source URL for messages broadcast over the wirelesscommunication network illustrated in FIG. 1;

FIG. 13 is a flow chart of an algorithm for generating and processingE-mail alerts in accordance with the present invention;

FIG. 14 is a flow chart of an algorithm for address and messagefiltering in accordance with the present invention;

FIG. 15 is a detailed flow chart of the algorithm illustrated in FIG. 14for targeting data to a user utilizing physical and virtual addresses;

FIG. 16 is an illustration of the columns of a data group encoded by anencoder using a modified Reed-Solomon code for deriving parity-checkpackets;

FIG. 17 is a flow chart of an algorithm for deriving parity-checkpackets as illustrated in FIG. 16;

FIG. 18(a) is a flow chart of an algorithm for data compression whichcombines-Huffman compression and dictionary-based compression inaccordance with the present invention;

FIG. 18(b) is a flow chart of an algorithm for data decompression of thecompression algorithm illustrated in FIG. 18(a);

FIG. 19(a) is a flow chart of an algorithm for data compression usingdifferencing in accordance with the present invention;

FIG. 19(b) is a flow chart of an algorithm for data decompression of thecompression algorithm illustrated in FIG. 19(a);

FIG. 20 is an illustration of a user interface alert panel as seen by auser;

FIG. 21 is a flow chart of an algorithm for implementing theinitialization procedure for the user interface alert panel illustratedin FIG. 20;

FIG. 22 is a flow chart of the algorithm for implementing process EMITmessages procedure for the user interface alert panel;

FIG. 23 is a block diagram illustrating how star feed messages areprocessed in accordance with the present invention; and

FIG. 24(a) is a depiction of a market scoreboard viewer;

FIG. 24(b) is a depiction of a football viewer;

FIG. 24(c) is a depiction of a newspaper viewer;

FIG. 24(d) is a depiction of a stock ticker viewer; and

FIG. 25 is a flow chart of the algorithm for multiplexing a datamessage.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

In the description that follows, like parts are marked throughout thespecification and drawings with the same reference numerals,respectively. The drawing figures might not be to scale, and certaincomponents can be shown in generalized or schematic form and identifiedby commercial designations in the interest of clarity and conciseness.

Referring to FIG. 1, a wireless communication system 10 includingselection addressing 28, connecting on-line information sources 12 withon- and off-line computers, such as personal computer 14, isillustrated. In accordance with the present invention, the wirelesscommunication system 10 turns a personal computer 14 or other computingdevice into a personal wireless information and messaging center.Although the present invention may be used to interact wirelessly withany computing device, for illustrative purposes, the present inventionwill be described and illustrated utilizing a personal computer 14. Oneskilled in the art will recognize that computing devices may includeconsumer electronic devices including computing capabilities. Thedata/information which is transmitted in accordance with the presentinvention may be in the form of voice (audio), video, data or acombination thereof.

In particular, the present system provides for broadcast of up to theminute notification centric information thereby providing an instantcall to action for users who are provided with the ability toinstantaneously retrieve further detailed information. Throughout theday, various pieces of information happening around the world arecurrently available from information sources 12 in a sender initiatedparadigm where users have to seek out the information. In accordancewith the present invention, the notification centric portions of thatinformation that lives in an electronic medium is wirelessly broadcaston a nationwide basis to wireless receiving devices 32 which areconnected to personal computers 14 or other computing devices. Uponreceipt of the information at the personal computer 14, the user isnotified through different multimedia viewers 20 that there is anincoming message. The message can be of something that is happening atthe present moment anywhere around the world. Included with thebroadcast that is wirelessly sent to the user is the Internet addressand location of the detail of that message. By clicking on a buttonwithin the multimedia viewer 20 that notified the user that a messagecame in, the present invention will automatically make a wiredconnection to the information source 12 utilizing the user's preferredon-line browser which will direct the user to the particular location onthe Internet service provider where the user can receive detailedinformation.

The information source 12 may be a private Internet provider such asQuotecom, corporate Internet provider or an on-line service providersuch as America On-Line, Compuserve, Prodigy, the Microsoft Network, andthe like. A browser is a known software tool used to access theinformation source 12 via the providers. Known browser software includesNetscape, Netscape Navigator, Microsoft Explorer, Mosaic and the like.The present invention is designed to operate with any of these known ordeveloping web browsers.

Additionally, the present invention unlike other wireless systemsprovides for a combination of broadcast, narrowcast and pointcasttransmission. That is, information can be transmitted from a centralbroadcast server 34 wirelessly to everyone (broadcast), to a subset ofusers (narrow cast) or to one user (pointcast). One skilled in the artwill recognize that the central broadcast server 34 operates effectivelyas a network operations center. The present invention furthermoreprovides multiple viewers 20 which listen to the airwaves and have theability to filter against the broadcast with specific action. A messageserver provides different types of filters with the ability to parsedata. The filters control which messages are handled by a particularviewer 20. Additionally, the message server is designed such that thirdparty developers can write different types of multimedia viewers 20which can easily be downloaded to the user system and automaticallyregistered with the message server. The viewers can thus be controlledthrough the interface of the present invention and multiple viewers 20and multiple controllers of such viewers can dynamically be added andcontrolled. Moreover, since the signals are encoded for multimediaevents, the viewers 20 of the present invention have capability toutilize multimedia capability.

As will be described in detail below, data parsed from a plurality ofincoming data feeds 16 from existing information sources 12 iswirelessly transmitted by the central broadcast server 34 nationwidethrough a commercial wireless carrier 36 to connected and non-connectedcomputing devices 14 thereby extending the reach of existing informationsources 12, such as Internet and on-line services. On the user end, oncedata is received, the message server design 18 recombines, decodes, anddecompresses the incoming data. When a complete data message is formed,a communications server 38 in the message server design 18 notifies auser interface alert panel 50 which presents an icon, which whenclicked, notifies appropriate viewers 20 which are registered to displayparticular data. Users can then display the context of the data on theircomputers 14. Based on preferences set by the user with respect tosound, video and animation, users can be alerted to incoming messages.Wirelessly broadcasted Uniform Resource Locator's (URL's) 22, associatedwith the data, are embedded in multimedia data packets and provide anautomated wired or wireless connection or link 22 back to theinformation source 12 for obtaining detailed data. A network path to aninformation source 12 is identified by the URL having a known syntax fordefining a network. Data, such as advertisements and promotionalbroadcasts, can thus be embedded in a multimedia viewer as well asautomatically activated on a scheduled or triggered event. Moreover, anadvantage of the present invention is that data can be modified andupdated instantaneously and wirelessly. Additional services can beactivated wirelessly and existing services disabled through broadcastactivation codes which can enable or disable addresses thus turningservices on and off.

Another advantage of the present invention is that a remote computer 14can receive information instantly—even while it is off-line (i.e. notconnected to the Internet or some other on-line service). Thus, a userhas the ability to receive “on-line” information even when the user is“off-line”. In accordance with another advantage of the presentinvention, a user can simultaneously, using the same computer 14, workon a conventional application, such as a spreadsheet or word processingprogram, and monitor information which is being transmitted wirelessly.

The user computer 14 of the present invention includes a microprocessorconnected to a system bus and supported by read only memory (ROM) andrandom access memory (RAM) which are also coupled to the system bus. TheRAM is the main memory into which the operating system and applicationprograms are loaded. The RAM may also support Internet services,including but not limited to the file transfer protocol (FTP) and simplemail transfer protocol (SMTP) or E-mail. A CD ROM, which is optional, isconnected to the system bus and is used to store a large amount of data.Various I/O controllers, including but not limited to the videocontroller, audio controller and mouse controller may also be connectedto the system bus. A modem enables communication over a network to otherinformation sources or computers. The operating system of the computermay be Windows '95™, WINDOWS NT™ or any other known and availableoperating system.

In the preferred embodiment of the invention, the user computer has a486 PC or higher processor, 16 MB of RAM, Windows 95 operating system,at least 20 MB available on hard disk for storing the executableprograms, support files and databases, sound and video cards, monitor,mouse or other equivalent pointing device, an ISA slot for receiving aninternal 16 Bit ISA receiver card, or serial port. The receiver cardinstalled in the ISA slot in the user computer 14 interacts with thewireless receiver 32. The wireless receiver may also be accessed via theserial port. One skilled in the art will recognize that the presentinvention is not limited to the particular configuration discussedabove. Rather, the present invention may be implemented on othercomputer systems and configurations, including but not limited toMacintosh or Unix computers, televisions, telephones, appliances and soforth.

The wireless communication system 10 of the present invention includesinformation mirroring 26, selection addressing 28, bandwidthoptimization 30, receiving means 32, message server design 18 and URLbroadcast and hot links 22.

Information Mirroring.

As is illustrated in FIG. 1, information sources 12, such as theInternet, on-line services and other information sources, provide datafeeds, including real time data feeds, to a network of servers 33 in thecentral broadcast server 34. These data feeds, once they have beenparsed, compressed, encrypted and packetized based on feed and datatype, provide the basis for outgoing broadcast sent immediately or on ascheduled basis. The data feeds include but are not limited to,electronic mail (E-mail) and other personal alert notifications, news,sports, and financial stories, premium and special event feeds,advertisements/promotions, graphics, sounds, and scheduled updates. Thedata feeds generated by the information sources 12 are in digital formand divided into one or more data packets.

Referring to FIG. 2, a block diagram 100 of the software architecturefor communications between the information sources 12 and centralbroadcast server 34 prior to transmission to users is illustrated.Referring to FIGS. 1 and 2, information sources 12 provide data feeds tothe central broadcast server 34 which performs selection, scheduling andaddressing 28. In particular, real time data feeds from the Internet 13in the information source 12 are provided to a network of servers 33 inthe central broadcast server 34, such as the FTP server 102 and the SMTPserver 104 illustrated in FIG. 2. The data, which can include but is notlimited to stock quotes, weather, lotto, E-mail, etc. is thenrespectively parsed by parsers, such as the stock quote parser 106,weather parser 108, lotto parser 110 and mail parser 112, and thentransmitted to the content manager 114 located in the central broadcastserver 34. Data is also provided to the central broadcast server 34 bysources 116 which provide software and hardware for a mainstreamconnection, via FM radio, with the source 118. This kind of data is alsoparsed by various parsers, such as Reuters 120, COMDEX 122 and TSN 126.The present invention is not limited to the information sources orparsers described herein. Rather, any type of information source andcorresponding parser may be used. The parsed data is then transmitted tothe content manager 114.

The central broadcast server 34 also provides aregistration/subscription processor 128 via the World Wide Web (WWW)database or alternatively, other means. The WWW is a collection ofservers of the Internet that utilizes the Hypertext Transfer Protocol(HTTP). Through the registration/subscription processor 112, a user canregister and subscribe to receive broadcasts provided by the presentinvention via the user computer 14. The information provided by the useris transmitted to a subscriber database 130 which is utilized by thecentral broadcast server to determine which subscribers receive whichtypes of content.

Referring to FIG. 2, the content manager 114 determines how differenttypes of information are handled. In particular, it specifies prioritiesfor different types of information, and decides which pieces ofinformation will be transmitted and which will be rejected. It alsoapplies scheduling rules 132 to determine when messages should bescheduled to be transmitted to the user. In addition, the contentmanager 114 is responsible for determining what format the informationshould be sent in, what compression method to use, and who informationshould be sent to. The compression method and format are determined bythe type of information. When and if the information should be sent, whoit should be sent to, and the priority of the information are determinedbased on the type of information, the time of day, the day of the week,and the specific date. So, for example, these rules could be used tospecify that certain news feeds go to premium subscribers only exceptduring certain hours of the day. Or it could be used to say that stockquotes are a low priority during hours the stock exchanges are closed,on Saturday and Sunday, and on market holidays. The content manager 114also has the ability to detect and remove duplicate messages.

The content manager 114 communicates with the information gateway 134which is responsible for resolving logical information inside the systemto physical information needed for the wireless gateway 136. Inparticular, the information gateway's 114 duties include, but are notlimited to: resolving service identifications (ids) and addresses from alogical address and managing the content budget rules 138 to ensure thatthe total content quota is not exceeded. The content budget is based onthe number of bytes which may be transmitted in an hour. The algorithmused manages the budget by evaluating the total bytes allowed in thehour, the priority of the information, the total bytes sent so far inthe hour and the maximum instantaneous rate at which information may besent to determine whether to send a message. The goal being to ensurethat sending low priority information early in the hour will not preventhigh priority information from being sent late in the hour. Since theinput to the information gateway 134 is primarily logical, it could beexchanged for an information gateway 134 which could send theinformation to be transmitted over another medium, such as the Internet.In addition, the information gateway 134 enforces priorities to ensurethat higher priority information is sent before lower priorityinformation.

In accordance with the present invention, the wireless gateway 136prepares data blocks for transmission over a wireless broadcast network,including but not limited to transmission via a paging network (FIG.3(a)), Vertical Blanking Interval (VBI) (FIG. 3(b)) or satellite (FIG.3(c)), narrow and broadband PCS, GSM, VSB television, cellular and otherdeveloping wireless technologies. One skilled in the art will recognizethat the data blocks can be transmitted by a digital, analog or FMsubcarrier. The present invention is designed to operate with any of theabove known or developing transmission networks.

In particular, referring to FIG. 3(a), a block diagram of the head-endhigh-level software architecture for transmission over a paging network37 in accordance with the present invention is illustrated. The pagingnetwork 37 allows information to be transmitted over paging frequenciesto paging receivers 32 which are connected to a user computer 14. Thewireless gateway 136 transmits information to a plurality of pagingterminals 39 which transmit the information to paging transmitters 41.In turn, the paging transmitters 41 transmit the information toreceivers 32, which only receive information having specific addressesas noted in detail below. The paging terminals 39 and transmitters 41are preferably located nationwide to provide information access to allusers. Paging terminals communicate with one another via the Inter andIntra System Protocol (TNPP). Information is typically received at apaging terminal 39 and eventually transmitted to a separate pagingtransmitter 41 through a radio control link. One skilled in the art willrecognize that the link between the paging terminal 39 and the radiocontrolled link to the paging transmitters 41 can be a satellite link.In particular, information from the paging terminal 39 is transmitted toa satellite via an uplink. The information is then modulated onto thecarrier of the radio control link for transmission to the pagingtransmitters 41. One skilled in the art will recognize that anycommercial paging carrier which can transmit information wirelessly canbe utilized in accordance with the present invention.

Referring to FIG. 25, in accordance with an advantage of the presentinvention, to overcome the paging network limitation on the amount ofdata that may be sent to a single address, or capcode in pagingterminology, messages are sent on groups of pooled addresses andreceived at the user end on corresponding pools of addresses. Thus,information is multiplexed over multiple addresses but is reassembled atthe user end as if sent to a single address. This allows utilization ofavailable network bandwidth that could not be utilized with a singleaddress.

In particular, the data to be transmitted over a paging network 37, suchas that illustrated in FIG. 3(a), first goes through a process ofpacketization, encryption, compression and forward error correctionmethods, as described in detail below. The output of this process is 1to n number of data packets, depending on the level of error correction,and type of compression/encryption applied to the data. The pagingnetwork addresses an individual or group by broadcasting on a particularaddress or capcode. By programming a paging device to listen to theindividual capcode, the device is then capable of receiving theparticular message. The inherent problem with the FLEX protocol which isused by major paging carriers is that there is a limit to the number ofmessages which can be sent to any one particular capcode at a time. Inaccordance with FLEX encoding rules, only 2 messages per capcode canexist at any one time in a particular FLEX frame, which is approximately1.875 seconds. A typical data message sent over a paging carrier isbroken down into 16 individual data packets. If only one capcode istransmitted, it would take (16 packets/message)*(½ frame/packet)*(1.875seciframe)=15 seconds/message. This is a relatively slow rate and onlyutilizes a small fraction of the FLEX frame. A FLEX frame is capable oftransmitting on four different phases or channels at a particular time,hosting several messages per frame. The FLEX encoding rules only specifythe maximum messages per capcode frame, but there is no limit set to thenumber of capcodes.

Referring to FIG. 25, in accordance with an advantage of the presentinvention, the data message is multiplexed over a number of capcodes(i.e. uses multiple capcodes to send one message). Using the previousexample, the present invention would send the 16 packets of the datamessage to 8 different capcodes. Thus, it would take (16packets/message)*(½ capcodes/message)*(⅛ frame/capcode)*(1.875sec/frame)=1.875 sec/message. The data rate is approximately 8 timesfaster and fully utilizes the FLEX frame. Although the relationshipbetween the capcode and the packet id number is arbitrary, the serversoftware assigns the packets in a “round-robin” fashion, assigningpackets 1-8 to capcodes 1-8, respectively, and packets 9-16 to capcodes1-8, respectively.

At the user end, the software decodes the messages in a similar manner.A user would subscribe to a particular service, which essentiallytranslates into a set of capcodes which are programmed into thereceiving device 32 (FIG. 3(a)). The receiving device 32 then receivesthe packets which are transmitted to that particular set of capcodes.Thus, for example, the user software would initialize the receivingdevice 32 with the same 8 capcodes as on the transmit side. The packetsreceived with those 8 capcodes would then be combined into the originaldata message.

Referring to FIG. 3(b), a block diagram of the head-end head-levelsoftware architecture for transmitting data over a Vertical BlankingInterval (VBI) of a television signal 135 in accordance with the presentinvention is illustrated. The wireless gateway 136 transmits informationthrough a standard RS232 interface 137 and modem 139, which through atelephone line 141 communicates with a modem 143 at a television networkbroadcast transmission site. The information is forwarded from the modem139 to a VBI encoder 145 which combines the VBI data with a standardtelevision video signal 153. The encoded data is then forwarded to asatellite uplink transmitter 147 which transmits the television signal153 to a satellite antenna/receiver 151 via satellite 149. A VBI decoder155 then extracts the data from the television video signal and performsphysical device addressing. The VBI encoder and decoder may be anycommercially available encoder and decoder designed for VBItransmission. The communications server 38 is modified to interface withthe driver for the VBI decoder 155 which is provided by the manufacturerof the decoder hardware.

Referring to FIG. 3(c), a block diagram of the head-end high-levelsoftware architecture for transmission via a satellite-based system 157in accordance with the present invention is illustrated. The wirelessgateway 136 transmits information through a standard RS232 interface 159and modem 161, which through a telephone line 163 communicates with asatellite modem 165. The information is forwarded from the satellitemodem 165 to an uplink transmitter 167 which transmits the data to asatellite dish or antenna 171 via satellite 169. In particular, thesatellite dish or antenna 171 receives the RF signal from the satellite169. A standard satellite receiver PC card 32 converts the RF signalinto PC compatible data. The communications server 38 is modified tointerface with the receiver card driver provided by the manufacturer ofthe receiver PC card 32 to receive data from a standard satellite datareceiver.

The content manager 114 utilizes a content programming station 140 tocontrol the content of programming. The content programming station 140allows a programming manager (not shown) to alter the rules used by thecontent manager 114. The content programming station 140 will also beused to review and alter content schedules and schedule ad hoc messages.For example, if there are news feeds which must be manually filtered tolocate acceptable content, the news feeds would appear at the contentprogramming station 140 for the program manager to review.

A flowchart illustrating the algorithm for implementing the processingof data prior to transmission is illustrated in FIG. 4. Information fromthe content manager is initially applied to the information gateway 134(step 115) which resolves its logical destination address to a physicalwireless address based on information in the subscriber database (step117). The data is then applied to the wireless gateway 136 which createsthe data block, performs packetization, compression, encryption, and soforth to prepare the data block for transmission over the wirelessbroadcast network (step 119). The data block is then transmitted overthe wireless broadcast network by the commercial carrier 26.

Information Mirroring.

Data is transmitted from an information source to the central broadcastserver 34 as discrete message blocks using E-mail or a well-known highspeed protocol such as the Transport Control Protocol/Internet Protocol(TCP/IP). (See Corner, D. E., “Internetworking with TCP/IP, Vol. 1:Principles, Protocols, and Architecture, Second Edition”, Prentice Hall,Englewood Cliffs, N.J. (1991).) In particular, each data packettransmitted by the information source 12 includes a header, packet dataand information to ensure proper transmission to the central broadcastserver 34. Additionally, an error correction code is typically added toeach packet prior to transmission. The data block is broken down intomessages and messages are broken into packets. Each packet isaccompanied by a message id and a sequence number. All packets belongingto the same message contain the same message id. A sequence numberdenotes the position of the packet inside the group. Some packets willalso carry the total number of packets belonging to the message. Eachpacket header includes the following: packet type (4 bits), totalpackets included (1 bit), message identifier (11 bits) and packetsequence number (1 byte).

Although the preferred transmission protocol from information source tothe central broadcast server 34 is TCP/IP, it will be appreciated bythose skilled in the art that many other standard or applicationspecific protocols, such as the Open Systems Connection (OSI), may beused as well.

The information sources 12 thus provide the information basis foroutgoing broadcast transmitted by the central broadcast server 34through nationwide wireless broadcast network immediately or on ascheduled basis to both on- and off-line computers 14. When the centralbroadcast server 34 receives the data packets from the informationsource 12, it pre-processes the data packets and wirelessly transmitsthe data packets to both on- and off-line computers 14. Consequently,computer users receive real time notifications of information, includingbut not limited to breaking headlines, sport scores, weather disasters,financial information and even the arrival of new electronic mail. Itwill be understood by one skilled in the art that the informationconsolidated at the central broadcast server 34 may additionally be sentvia a wired connection to a personal computer or computing device.

Referring to FIG. 1, information sources 12 also receive requests fromremote personal computers 14 or other computing devices for moredetailed information. Wirelessly transmitted URL's 22, associated withincoming information, are embedded in the broadcast message from thecentral broadcast server 34, which is displayed in the multimediaviewers 20 and provide an automated direct wired or wireless lineconnection 22 back to the information source 12 such that detailed datamay be automatically downloaded to the user's computer 14.

As illustrated in FIG. 1, data generated by the information sources 12is fed to the central broadcast server 34, which processes the incomingdata packets by parsing the feeds 16 against specific filters, encodingthe data and creating desired broadcast feeds for wireless transmissionas described in detail below.

Selection Addressing.

As is illustrated in FIG. 1, the data packets generated by theinformation sources 12 are transmitted to the central broadcast server34, where they are internally processed before being wirelesslytransmitted through a carrier 36 to one or more personal computers 14 orother computing sources via selective receivers 32. When the packetsarrive at a user receiver 32, they are reassembled by the communicationsserver 38 in the message server design 18 into the original message. Oneskilled in the art will recognize that the carrier can be a local,regional, nationwide or worldwide carrier.

Information from the content providers is first formatted according tothe proprietary EMIT protocol before being prepared for transmissionover the wireless broadcast network. In the EMIT format, informationfeeds include a number of parts, each separated by the tilde (.about.)character. Each part begins with a tag (keyword) followed by an equalsign (=) and the data for that part. The tag determines how to interpretthe data in that part. Most tags are single characters to minimizenetwork traffic. Also, tags are case sensitive to allow more singlecharacter tags. Tags 15 are reserved for information category and subcategories. Other tags generally are derived from the first character ina name, such as, H for headline. An example of an EMIT formatinformation feed is provided below: 1=S˜2=B˜H=Dodgers Win WorldSeries.about.D=Nov. 2, 1989 9:30 pm where the primary category (1=) is S(which stands for sports), the first sub category (2=) is B (whichstands for baseball), the news headline (H=) associated with this feedis Dodgers Win World Series, and the date/time (D=) is Nov. 2, 1989 9:30pm.

Data from the information sources is packed into 8-bit binary formatdata blocks in the central broadcast server 34. The two basic data blocktypes are illustrated in FIGS. 5 and 6. In particular, FIG. 5 definesthe 8-bit binary format for “information” notification data blocks whileFIG. 6 defines the 8-bit binary format for “personal alert” notificationdata blocks. Information notification data blocks, illustrated in FIG.5, contain general information targeted to all users, including but notlimited to news headlines and stories, sports scores, financial marketdata, and so forth. Personal alert notifications, illustrated in FIG. 6,contain alert information targeted to specific users, including but notlimited to notifications regarding E-mail arrival, stock prices reachingspecified values, Internet telephone calls, chats or meeting notices.

Prior to transmission, at the central broadcast server 34, the datapackets are encoded using a protocol suitable for the transmission ofinformation. Data blocks are packetized for transmission over thewireless broadcast network using transmission protocols.

In the preferred embodiment, which uses the paging network as the meansof wireless broadcast or transmission, Motorola's FLEX™ protocol isutilized. Alternatively, other protocols, such as traditional PostOffice Code Standardization Advisory Group (POCSAG) protocol, Motorola'sREFLEX™ and INFLEXION™, AT&T's protocol derived from CDPD or otherdeveloping protocols may be used as well. Most wireless transmissionprotocols, including POCSAG, provide random error correction as well aserror detection capabilities, thereby adding error detection andcorrection capabilities to the information link.

Depending on the type and amount of information contained, a data blockmay be enclosed in a single packet, or parceled into messages which inturn are subdivided into one or more packets. The message formatprotocol is illustrated in FIG. 7. Large data blocks are divided intomessages for efficiency in transmission. The data block header is sentas part of the message. The header type item is used to distinguishbetween the data block and message headers.

The basic unit of transmission is the packet. Each packet includes aheader and contents. The information contained in the header defines thepacket's contents. In accordance with the present invention and asillustrated in FIGS. 8 and 9, two basic types of packets in the 8-bitbinary format are utilized. The first 4 bits in the packet define thepacket type. Standard packets are used for transmitting data blocks toolarge for a single packet. In this case, each packet contains the ID ofthe message to which it belongs, and the packet number denoting theposition of the packet inside the message. This allows the software atthe user receiving end to rebuild the original messages and data blockfrom the individual packets. Prior to transmitting the packets in amessage, forward error correction packets are added as described indetail below. The single packet data block is used where the completedata block can fit into one packet. In this case, the packet header isfollowed by the data block header and data block contents. Binary alertpackets are a special case of the single packet data block and arereserved for the predefined alert notifications described above.

At the receiving end, as described in detail below, the reverse of thedata packetization process described above occurs. In the case ofmultiple packet data blocks, individual packets are combined to formmessages based on packet sequence number and message ID included in thepacket header. Error correction is performed as required. Individualmessages are then combined to form data blocks based on message sequencenumber and data block ID in the message header.

The central broadcast server 34 performs the following processes on theincoming data: compression, forward error correction, encryption,packetization and wireless broadcast format encoding. After internalprocessing, the formatted data packets are queued for wirelesstransmission to their respective destinations which could include one ormore remote personal computers 14 or computing devices. In accordancewith the present invention, the formatted data packets are eitherimmediately wirelessly transmitted to their respective destinations orstored into available memory for subsequent wireless transmission totheir respective destinations. For the latter, i.e. delayedtransmission, the central broadcast server 34 includes a non-volatilestorage medium for longer term storage of data programmed for subsequentwireless transmission to one or more users.

a. Encryption.

To minimize unauthorized use of broadcast data, the data is encryptedprior to wireless transmission so that anyone surreptitiously cominginto possession of the data would not be able to convert the data toclear form for use. The user software is designed such that it canproperly decrypt the data once it is received on the user end. In thepreferred embodiment, data is encrypted using the Data EncryptionStandard (DES) algorithm. (See “Data Encryption Standard”, FederalInformation Processing Standards Publication No. 46, January 1977; “DESModes of Operation”, Federal Information Processing StandardsPublication No. 81, December 1980.) Alternatively, other knownreversible encryption algorithms may be used for data encryption.

Prior to transmission, the data is also encoded with a data signature.The National Institute of Standards in Technology (NIST) DigitalSignature Standard (DSS) algorithm is preferably used for signatureverification. Alternatively, other known methods of signatureverification may be used. (See “Announcing a Digital SignatureStandard”, Federal Information Processing Standards Publication, Draft19 Aug. 1991, front page and pp. 14; “Specifications for a DigitalSignature Standard (DSS)”, Federal Information Processing StandardsPublication, Draft 19 Aug. 1991, pp. 111.) In operation, DSS is used toauthenticate the origin of the data (i.e., establish the identity of thesigner) and to check the integrity of the data (i.e., confirm that thedata has not been altered after it has been signed).

b. Forward Error Correction.

To compensate for transmission errors during wireless broadcast, forwarderror correction algorithms, such as Fire Codes and various forms ofReed-Solomon Codes, are applied to the outgoing data packets.Reed-Solomon and other coding systems are discussed in, for example,Theory and Practice of Error Control Codes, Richard E. Blahut, AddisonWesley, 1983, at pages 174 and 175. A feature of the forward errorcorrection used here is that the ideal packet size is dynamicallycomputed so as to minimize total over the air size while maximizingerror correcting capability.

c. Derivation of Redundant Data Packets.

Referring to FIGS. 16 and 17, as shown in detail below, the columns of adata group 150 are encoded by an encoder using a Reed-Solomon (RS) codefor deriving parity-check packets 152 i.e. redundant packets. Inaccordance with the present invention, the RS code, conventionally usedfor error detection and correction, is utilized in a novel manner withrespect to reconstructing packets that arrived with errors. As describedin detail above, the data transmission in the present invention is basedon a wireless protocol, such as Motorola's FLEX™ protocol or the POCSAGprotocol which provides error detection capabilities. However, theseprotocols cannot compensate for burst errors or errors due to loss ofsynchronization, which often results in truncated or lost packets at thereceiver. In the present invention, each information packet 154 whicharrives with an error or errors is considered a lost packet. Therefore,an information packet 154 either arrives without error or is lost.

The present invention is thus directed to compensating for suchtruncated or lost information packets by sending redundant packets.Instead of sending each packet twice or thrice, the present inventionutilizes a modified RS code in a novel manner to transmit packets withredundancy as explained in detail below. For example, for a messagewhich is split into 200 information packets sent over a paging networkwith a packet loss rate of 1%, the probability of a successfulreconstruction of the message is only approximately 13.4%. If everyinformation packet is sent twice, i.e. 400 total packets, theprobability of a successful reconstruction of the message increases toapproximately 98.2%. In accordance with an advantage of the presentinvention, by using a modified RS code to derive redundant packets, only5 extra packets, i.e. 205 total packets, need to be sent to achieve thesame approximate 98.2% successful reconstruction probability. Thus, thepresent invention provides an improvement over conventional methods,which utilize additional error correction and detection capabilities ona per packet basis. In the present invention, Reed Solomon parity checkpackets 152 effectively compensate for lost information packets. As aresult, redundancy and packet loss rate are minimized, and flexibilityand packet recovery rate are maximized.

In accordance with the present invention, data received from aninformation source is encoded into data blocks at the broadcast server.Each data block is then parceled into one or more messages so that eachmessage can be parceled into information packets 154. Each data packetis accompanied by a message identifier and a sequence number. Asdescribed in detail above, all packets which belong to the same messagecontain the same message identifier. The sequence number denotes theposition of the data packet inside the message. Some packets will alsobe accompanied by information regarding the total number of packetsbelonging to a message. When enough packets arrive at the user receiver32, they will be reassembled into the original message by thecommunications server 38 in the message server design 18 as explained indetail below.

Referring to FIG. 16, in accordance with the present invention, a ReedSolomon code is computed down the columns of the block of data packets,thereby creating Reed Solomon parity-check packets. The most generalcase (n,k) is adopted where1≦n≦255  (1)1≦k≦n  (2)

where k=number of information packets generated by parceling the inputmessage,

n=total number of transmitted packets.

The total number of transmitted packets is determined based on thedegree of protection requested. By allowing for the arbitrarycombination of n and k, maximal flexibility is achieved. In particular,n and k are chosen during run-time, instead of design-time. For example,(255,223), (255,251), (7,3), (16,1) Reed Solomon codes, used column-wiseare all possible combinations for generating Reed Solomon parity-checkpackets. In a typical operation, by using a (255, 223) Reed Solomon codecolumn-wise, 32 parity-check packets are generated for a group of 200information packets to be transmitted. Thus, even if 32 arbitrarypackets out of 232 total data packets were lost during transmission, asuccessful reassembling of the information can still be achieved at thereceiver end.

In accordance with the present invention, to minimize the number of lostmessages, the information packets are sent with redundancy using amethod based on Reed-Solomon code to derive Reed Solomon parity-checkpackets. Utilizing an 8-bit Reed-Solomon code, the maximum number ofdata packets (including both information packets and Reed-Solomonparity-check packets) is 255. There is no limitation on the number ofsymbols in each data packet as long as they are acceptable by thewireless carrier.

In accordance with the present invention, the modified RS code encodesthe data over a Galois Field GF(2⁸) (hereinafter GF(256)) whose fieldelements are represented by their coordinates with respect to thecanonical basis {1, a, a², . . . , a⁷} where a is a root of theprimitive monic polynomial:f(x)=x ⁸ +x ⁴ +x ³ +x ²+1  (3)

Parity-check packets are generated by encoding k data packetscolumn-wise in accordance with the following generating polynomial g(x)equation:

$\begin{matrix}{{g(x)} = {\prod\limits_{I = 1}^{P}( {x + a^{i}} )}} & (4)\end{matrix}$where g(x)=generating polynomial

a=primitive element of GF(256)

p=number of parity check packets

Multiplication and inversion in GF(256) are implemented by table lookupor by algorithm depending on performance requirements.

In the preferred embodiment, the encoder for encoding k data packetscolumn-wise is a software simulation of polynomial division using linearfeedback shift register (LFSR), with n and k being changeable. Thecoefficients of the generator polynomial g(x) are saved in the order ofascending power. Alternatively, the LFSR may be implemented in hardware,with n and k fixed. (See William Wesley Peterson, “Error CorrectingCodes”, Edition One, pg. 150.)

A series of data packets including both information packets andparity-check packets are formed. The number of symbols in each datapacket is limited only by the wireless broadcast system. In accordancewith the present invention, no extra error correction is added to eachdata packet.

The number of parity-check packets, n−k, must be in the range [1, 254]and the number of erasures, i.e. errors whose locations are known, mustbe in the range [0, n−k]. The erasure locations must be all distinct andsorted in ascending order. In the present invention, RS error correctionis performed on each column. Each error in the column corresponds to alost packet. Since it is known which packet is lost, the locations ofall errors prior to RS decoding are known. Thus, in accordance with anadvantage of the present invention, the location of the errors is knownbefore RS decoding, thereby providing for maximal error correction. Incontrast, conventional applications of RS attempt to find both themagnitude and location of an error.

As shown in FIG. 16, each data packet (including information packets andRS parity-check packets) is parceled into many codewords. The length ofeach codeword is 32 bits, where 21 bits are for information and 11 bitsare for error correction/detection.

The data packets, i.e. information packets and parity-check packets, arethen transmitted to the message server unit via the user receiver. FLEX™provides information regarding whether the packets were correctlyreceived or not. As a result, any error locations are detected prior toapplying RS decoding. Decoding is then implemented by syndromeevaluation with known error locations. (See Hasan, Bhargava, andLe-Ngoc, “Reed-Solomon Codes and Their Applications”, pg. 79 81.)

In accordance with the present invention, the number of informationpackets k and the number of Reed-Solomon parity-check packets p can bearbitrarily chosen depending on the transmission condition and thedesired accuracy rate. The only condition is that the number ofinformation packets k and the number of parity-check packets togethertotal no more than 255. The restrictionp+k≦255  (5)

is imposed by the use of the finite field GF(256). As stated earlier,each data block will thus first be split into several messages so thateach message can be split into k packets that satisfy the aboverestriction. Up to p packets can be lost without compromising successfulreconstruction of the message. In accordance with the present invention,even if some data packets are lost, the full message can be recoveredusing the redundancy data packets generated by the present invention.

Referring to FIG. 17, a flow chart 160 of the algorithm for deriving RSparity-check packets is illustrated. The data block is initiallyparceled into one or more incoming messages (step 162), and the messagesare then parceled into k information packets 154 (step 164). The numberof RS parity-checks packets p is then selected (step 166). Theinformation packets are then encoded column-wise with a modified RS codein accordance the generating polynomial:

${g(x)} = {\prod\limits_{I = 1}^{P}( {x + a^{i}} )}$and parity-check packets are generated (step 168). The data packets,which include information packets and RS parity-check packets, areparceled into codewords (step 170). After the data packets have beenparceled into codewords, error correction/detection is performed on thecodewords (step 172). The data packets are then transmitted to the users(step 174).

At the user end, the number of codewords which have error(s) is counted(step 176). Then it is determined whether each packet has any errors(step 178). If a packet does not have an error, then it is saved (step180). However, if a packet has one or more errors, it is discarded (step182) and the present invention-waits for more packets (step 188). Whenthere are enough packets (step 184), a message is assembled (step 186).If not, the present invention waits for more packets (step 188).Finally, when there are enough messages, the data block is assembled(step 192).

d. Compression/Bandwidth Optimization.

FIG. 18(a) is a flow chart of an algorithm for data compression whichcombines Huffman compression and dictionary-based compression. Inaccordance with the present invention, the data blocks are compressed atthe central broadcast server 34 end prior to transmission so thatmaximum amounts of information in compressed or bandwidth reduced formcan be transmitted to the selected user or users. As discussed in detailbelow, at the user end, the data blocks are correspondingly decompressed(FIG. 18(b)).

In the preferred embodiment, the current compression algorithm forEnglish language articles saved in ASCII text format combines theHuffman compression and the dictionary-based compression, such as LZ77and LZ78 based algorithms. In operation, as the compression algorithmscans the input texts, it not only tries to search for the next item inthe previously seen text, but also tries to search for the next item ina static Huffman dictionary, and it chooses a method which produces abetter result. After the data is received at the user end, it iscorrespondingly decompressed.

In particular, referring to the algorithm 200 for implementing datacompression in FIG. 18(a), the Huffman dictionary is loaded from thedisk storage, the address pointer is positioned to the start of theuncompressed input data in memory and a memory buffer for storing thecompressed output data is allocated (step 202). Next, it is determinedwhether the address pointer is moved to the end of the data input (step204). If so, bit b=1 is written to the output data and the end-of-datatoken from the Huffman dictionary is written to the output data (step206) and the compression routine is done (step 208). If in step 204, itis determined that the address pointer is not at the end of the inputdata, the compression algorithm scans the input texts, searching for thenext item in the previously seen text (step 210) and the static Huffmandictionary (step 212), and chooses the method which produces a betterresult (step 214).

In particular, in step 210, the data is compressed using the previouslyseen text. A token T1 is generated by comparing the input data at theinput pointer to the previous input data. T1 denotes an index to thepreviously seen data that has the maximum length match with the currentdata. L1 correspondingly denotes this maximum length.

In step 212, the data is compressed using the Huffman dictionary whichwas loaded in step 202. A token T2 is generated by looking for themaximum match of the input data at the input pointer to entries in theHuffman dictionary. T2 denotes an index to the dictionary entry for themaximum match. L2 correspondingly denotes the length of the match.

In step 214, the optimum result (T,L) from (T1,L1) or (T2,L2) is chosendepending on which is larger, L1 or L2. If (T1,L1) is chosen, b is setto 0 (b=0), else b is set to 1 (b=1). b is initially written to theoutput data followed by the optimal result (T,L). The input data pointeris then advanced by L bytes.

After the data is received at the user end, it is correspondinglydecompressed in accordance with the algorithm 220 illustrated in FIG.18(b). The Huffman dictionary is initially loaded from the disk storage,the address pointer is positioned to the start of the compressed inputdata in memory and a memory buffer for storing the decompressed outputdata is allocated (step 222). One bit from the input data is read andsaved in b (step 224). Next, it is determined whether b=0 (step 226). Ifso, the data is decompressed using the previously seen text (step 228).The next token (T,L) is initially retrieved, followed by L bytes ofdecompressed data from the output buffer at a location denoted by T. Theretrieved bytes are denoted by txt, which are then written to the outputbuffer (step 230). The input data pointer is then advanced by the lengthof the token (T, L) in bits. The program then returns to step 224 andrepeats the steps until the Huffman end-of-token is detected (step 232).

If, in step 226, b is not set to 0, it is determined whether the nexttoken is the Huffman end-of-data token. If so, decompression has beencompleted (step 234). If not, the data is decompressed using the Huffmandictionary (step 236). The next token (T,L) is retrieved, followed by Lbytes of decompressed data from the Huffman dictionary using T as anentry into the dictionary. The retrieved bytes of data are denoted bytxt, which as noted previously, is written to the output buffer (step230). The input data pointer is advanced by the length of the token(T,L) in bits and returns to step 224.

e. Differencing.

FIG. 19(a) is a flow chart of an algorithm 240 for data compressionutilizing differencing. In accordance with another advantage of thepresent invention, a differencing algorithm 240 is additionally used tocompress the coded data, thereby significantly reducing the number ofbytes sent with each transmission. In particular, a dictionary-basedcompression algorithm, such as LZ77 and LZ78 based compression, can beadapted for this application. File two is described with reference tofile one in a minimum number of bytes. In such an algorithm, file one isused as the dictionary.

In particular, the precomputed standard hash table HT for file 1, thedictionary file, is loaded from mass storage (step 242). The minimummatch length L from the length used in creating the hash table HT andthe maximum match length U from the limits on contiguous data blocktransmission size are set. The memory address pointer to the stream ofinput data (file 2) to be compressed by differencing with file 1 isretrieved and a memory buffer for the compressed output data isallocated. The algorithm 240 next determines whether the end of theinput data has been detected (step 246). If so, the compression iscomplete (step 248). If not, the hash value H of the next input datasubstring of length L bytes with the same hashing algorithm used tocompute HT is calculated (step 250). The optimal match length ML is thenset to 0 and the optimal position MP is set to −1 (step 252). For eachposition P in HT corresponding to H, the best match length PML atposition P in file 1 such that L<=PML<=U is determined (step 254). IfPML is greater than ML, then ML is set such that ML=PML and MP is setsuch that MP=P. If in step 256, ML=0, the bit value 0 is written to theoutput buffer (step 258). The byte at the current input buffer pointeris written to the output buffer and the input buffer is advanced by onebyte. The algorithm 240 returns to step 246 and continuously iteratesuntil the end of the input data is detected (step 248).

If in step 256, ML is not equal to 0, the bit value 1 is written to theoutput buffer (step 260). The optimal match length ML and the optimalmatch position MP are written to the output buffer. The input bufferpointer is then advanced by ML bytes. The algorithm 240 returns to step246 and continuously iterates until the end of the input data isdetected (step 248).

As discussed in detail below, at the user end, the data blocks arecorrespondingly decompressed in accordance with the algorithm 262illustrated in FIG. 19(b). The dictionary file, file 1, is initiallyloaded from mass storage (step 264). The memory address pointer to thestream of compressed input data and retrieved and the memory buffer forthe decompressed output data is allocated. It is next determined,whether the end of the input data has been detected (step 266). If so,the decompression routine is complete (step 268). If not, one bit b fromthe input buffer is read (step 270). It is then determined whether b=0(step 274). Is so, one byte from the input buffer is copied and writtento the output buffer. The input buffer pointer is then advanced by onebyte. The algorithm 262 returns to step 266 and continuously iteratesuntil the end of the input data is detected (step 268).

If in step 274, b does not equal 0, the match length ML and the matchposition MP is retrieved from the input buffer (step 278). ML bytes arecopied from file 1 at position MP to the output buffer. The input bufferpointer is advanced by the sizes of ML and MP in bytes. The algorithm262 returns to step 266 and continuously iterates until the end of theinput data is detected (step 268).

f. Wireless Data Format Encoding.

Where the method of transmission is paging, all outgoing messages arepreferably encoded to ⅞ bit data or true 8 bit data for broadcast overpaging networks. After the data is received at the user end, it iscorrespondingly decoded.

With respect to VBI and satellite transmission, all outgoing messagesare preferably encoded to true 8 bit data.

g. Addresses.

In accordance with the present invention, outbound data will besegmented and sent to the user by way of the user receiver 32 utilizingcommon and unique addresses. Addresses are numbers used by wirelessreceiving devices to identify messages targeted to a user. Addresses areusually stored in programmable read only memory (PROM) in the receiverhardware 32. If the address to which a message is transmitted matches aaddress stored in the receiver 32, then the receiver 32 will process themessage. Otherwise, the message will be ignored. In a typicalconfiguration, general “basic services” are wirelessly transmitted onglobal common addresses, electronic mail and point-to-point messages aretransmitted on personalized or unique addresses, and combined premiumservices and pay-per-view events are grouped together and transmitted oncommon addresses. Alternatively, the combined premium services andpay-per-view events may be sent on unique addresses as well.

h. Request for Additional Services.

The central broadcast server 34 additionally includes telephone and/ormodem interfaces for receiving remote request from users to obtainadditional or modify existing services. For example, a user from apersonal computer 14 or other computing device, can request additionalservices or modify existing services by telephoning or modeming thecentral broadcast server 34, which automatically and wirelesslytransmits the new or modified services. Modification of subscribedservices may also be performed via the Internet and World Wide Web.

i. Simultaneous Wired Transmission.

In accordance with an alternate embodiment of the invention, asexplained in detail below, the information provided from the informationsources 12 and transmitted to the central broadcast server 34 to beconsolidated in accordance with the present invention and thentransmitted wirelessly nationwide to personal computers 14 and othercomputing devices as described in detail above can also be sentsimultaneously via a wired connection to the same personal computers 14and computing devices having Internet/World Wide Web access (direct orvia on-line service providing Internet and Web access). In particular,the data processed at the central broadcast server 34, in addition tobeing transmitted wirelessly, is simultaneously made available throughwired connection to a specific web site on the Internet. A user can thusconnect to the Web via the Internet and receive information throughwired means.

Receiving Means.

Referring to FIG. 1, a user receiver 32, connected to a personalcomputer 14 or computing device, receives wireless transmissions sent bythe central broadcast server 34. The user receiver 32 preferablyincludes an Industry-Standard Architecture (ISA) board with a I Cinterface to an external wireless receiver and utilizes on-board POCSAG,Motorola's FLEX™ protocol or other wireless receiving device receivingand decoding. In accordance with an advantage of the present invention,Motorola's FLEX™ decoding allows for upgradeability to future receiverprotocols without requiring replacement of the internal ISA board. Theuser receiver 32 also includes an indicator, such as a flashing LED,which indicates reception of incoming messages. As described in detailbelow, the user receiver 32 includes physical addresses for filteringdata prior to being transferred to the personal computer 14. The userreceiver 32 may be a specially designed or commercially availablereceiving unit.

Filtering.

In accordance with the present invention, filtering of information canbe accomplished both at the user receiver 32 and personal computer 14 orcomputing device. Messages are electronically sent to nationwide andlocal wireless broadcast networks using both physical and virtualaddresses. Physical addresses are tags which reside in the hardwareportion in the user receiver 32.

In addition to standard physical addresses, the present inventionimplements a virtual address as illustrated in FIG. 14 and described indetail below. In particular, the virtual addresses reside in thesoftware of the user computer 14. Virtual addresses provide additionalfiltering of incoming data from the user receiver 32. For example, amessage may be received by all receivers 32, but if the message istargeted to a specific virtual address, then only those installations inwhich that virtual address is activated will process the message. Inaccordance with an advantage of the present invention, virtual addressesmay be activated and deactivated through the broadcast network, allowingfor external control over the reception of services in a particularinstallation. It will be appreciated by those skilled in the art thatinformation filtering can be accomplished utilizing virtual addressesonly. Virtual addresses can allow for unlimited filtering of messages onthe user end. However, this may increase the resource usage of thepersonal computer 14. Correspondingly, information filtering can beaccomplished by utilizing physical addresses only.

A higher level of filtering based on message category and content isalso provided. Users can set various filters based on a variety ofpreferences at information category or specific content levels to allowfor automated filtering of incoming information. At the category level,users can control which categories of information received from thebroadcast network are processed and which are discarded. For example, ifa user were not interested in sports, all sports information categories,such as baseball, football, golf, etc. can be selected for discarding.At the specific content level, a user can select which subcategories ofinformation within a particular information category will be processed.The user selectable subcategories depend on the type of informationcontained in that category. Subcategories may include, but are notlimited to, source providers for headline news stories, specificindustry segments (e.g., electronics, computers, communications,industrial, etc.) for business news, specific teams for sportscategories, particular states and games for lottery results, and stocksfor which quotes are displayed. For example, a user that wishes to havescores displayed only for baseball games involving the New York Yankeesor New York Mets can set the filter for the baseball viewer to discardgame results for all teams except those two.

Filtering is accomplished prior to information being transferred to thepersonal computer's hard drive 14, therefore conserving the personalcomputer's resources. Referring to FIG. 14, a flow chart of an algorithmfor message processing using filtering in accordance with the presentinvention is illustrated. An incoming message from the central broadcastserver end 34 after processing as described above is applied to thereceiver hardware 32 (step 200). Physical address filtering in thereceiver hardware is then used to determine whether the message shouldbe passed on for further virtual address filtering (step 202). If themessage passes physical address filtering, the message is applied tovirtual address filtering (step 204). Otherwise, the message isdisregarded (step 206). Virtual address filtering is then used todetermine whether the message should be passed (step 208) on for furthermessage content filtering (step 210). If not, the message is disregardedstep 212). Message content filtering then determines (step 214) whetherthe message should be stored in the message database (step 216) forfurther processing and transmission to the user or disregarded (step218).

The process of targeting data to an user utilizing real and virtualaddresses is illustrated in FIG. 15. Data blocks are built in theinformation gateway 134 and all applicable real and virtual addressesare determined based on the type of information in the data block anduser subscription data from the subscriber database 130. If a data blockis to be targeted to a specific virtual address, the virtual address isinserted by the information gateway 134 into the virtual address fieldof the data block header and the virtual address flag is set. Thewireless gateway 136 provides the interface to the wireless transmissionnetwork. It prepares data for transmission over the network andimplements real addresses in the proper data frames as specified by thestandard transmission protocol that is used. At the receiving end,arriving data is first filtered via real addresses in the wirelessreceiver 32 followed by virtual address filtering in the communicationsserver 38. The communications server 38 first checks the virtual addressflag in the data block header. If it is not set, then the data block ispassed onto the alert panel 50 for storage and display. If this flag isset, the communications server 38 determines if the virtual address inthe data block header matches one in the virtual address database. Ifthere is a match, then the data block is passed onto the alert panel 50.If there is no match, then the data block is discarded.

Message Server Design.

Referring to FIGS. 1 and 10, the message server design 18 includes acommunications server 38, user interface alert panel 50 and viewerserver 58.

a. Driver.

As is illustrated in FIG. 10, the driver 44 is preferably a Windows 95driver for the wireless device hardware 42, although another compatibledevice may be used as well. The driver 44 provides an interface toaccess received data and control the hardware 42, as well as informapplications as to the status of the receiver hardware 42.

b. Interface.

The interface 46 for the wireless device is preferably an AmFlex DLL 46,although another compatible device may be used as well. The interface 46is used to pass the data received from the wireless device to thecommunications server 38 for processing and distribution to othersoftware components. It also provides a means by which thecommunications server 38 can program the device hardware to receivespecific messages and also allows the communications server 38 todetermine hardware status.

c. Communications Server.

The communications server 38 receives data from the wireless device viathe interface 46, extracts the different types of data blocks(messages), passes public data blocks to the user interface alert panel50 and processes private data blocks locally. The communications server38 is also responsible for initializing the wireless device andmaintaining the address database which determines which receivedmessages will be processed. In addition, it provides diagnostic data onreceived messages for software debug purposes.

In operation, the communications server 38 is notified of incoming datapackets by the driver 44 via the interface 46 through a softwarecallback function. Once data packets are received by the communicationserver 38, it recombines, decompresses, decrypts, filters via virtualaddresses as previously discussed, and error corrects the data packetsusing techniques corresponding to the processing done at the centralbroadcast server 34 end. In particular, the communication server 38initially verifies the integrity of the data packets received usingcommon error correction techniques. After error correction, the datapackets are unpacketized and entire messages are assembled. Afterassembly, the communication server 38 verifies once again that theintegrity of the message is maintained. The message is then decryptedusing the common password previously established. The data signature onthe message is also checked to verify the integrity of the data. Themessages are uniquely encoded so that it is known which data packetbelongs to which message. The messages are stored in a database and whena complete message is formed, it is transmitted to one or more devicesthat are registered with the communication server 38. As shown in FIG.10, the complete message may be transmitted to the user interface alertpanel 50, shown in detail in FIGS. 3 and 4 and discussed in detailbelow. Thus, once the data packets are successfully read off the driver44, the data is error corrected, decompressed, decrypted and assembledinto a complete message. The communications server 38 then notifies theuser interface alert panel 50.

d. User Interface Alert Panel.

Referring to FIG. 10, the user interface alert panel 50 is the main userinterface for the applications software. The user interface alert panel50, which appears to a user as shown in FIG. 20, is the liaison formessages broadcast from the communications server 38 and delivered tothe viewer server 20. The user interface alert panel 50 performs allmessage archiving to the messages database. The main functions of theuser interface alert panel 50 are (I) initialization, (ii) processingEMIT messages, and (iii) timing events. The user interface alert panel50 is run when the user double clicks on a specific icon or selects theapplication from a start menu, such as the Windows 95 start menu, and isresponsible for other applications, such as launching the communicationsserver 38 and viewer server 20 and passing messages received from thecommunications server 38 to the viewer server 20. The user interfacealert panel 50 also displays “fly-in” graphics and icon buttons to alertthe user that a new message has been received, allows the user to open aviewer 48 to examine a received message by clicking on the viewer iconbutton for that message, and maintains the received messages database.The latter includes saving new messages in the database and deleting oldmessages after a certain period of time, as explained in detail below.The user also accesses the remote control 54 from the user interfacealert panel 50 by clicking a remote control icon.

(I) Initialization.

FIG. 21 is a flow chart of an algorithm 300 for implementing theinitialization procedure for the user interface alert panel 50 inaccordance with the present invention. In step 302, duringinitialization, the user is prompted for database management (compressthe message database). In particular, the user interface alert panel 50will determine if there are more than a predetermined number of messageswritten into the database 51. In the preferred embodiment, thepredetermined number of messages is 2000+, although one skilled in theart will recognize that any number of messages may be used. If thepredetermined number is exceeded, records which have been previouslymarked for deletion are removed from the database 51. Marked records aretypically records which have been read by a viewer and are not targetedfor any of the other viewers or applications, yet physically remain inthe database. These records are removed when the predetermined number ofmessages is met, thereby only leaving those records which need to beread.

Following database management, the databases 51 are opened fornon-exclusive read/writes (step 304). In accordance with the presentinvention, the three mains databases are the (a) messages database whichholds all the messages, (b) SYSAPPS database or systems applicationsdatabase which holds the viewer specific information such as what isexecutable, what needs to be run for that viewer to be launched, etc.and (c) V groups database which contains a list of all viewers, theiralias names and descriptions.

The next step during initialization involves reading the tool barinitialization information from the registry keys (step 306). Inparticular, the docking location of the user interface alert panel 50 isdetermined. The user interface alert panel 50 is dockable at all thecorners of the display and can also be floated at the center. Theanimation defaults are also determined because in the customization forthe user interface alert panel 50, the user can turn off the fly-insequence, buttons animated and/or sound files being played. Whichwinsock ports need to be used to talk to the communications server 38and viewer server 20 are also determined at initialization.

The next step is during initialization is to launch the communicationsserver 38 and viewer server 20 (step 308). After the executables for thecommunications server 38 and viewer server 20 have been launched, thecommunications server 38 is logged into as a client and the viewerserver 20 is logged into as a server such that each knows about the userinterface alert panel 50.

Then, buttons are created in the user interface alert panel 50 formessages marked as not read (step 310). For example, some records in themessage database 51 are not read because the user closed the userinterface alert panel 50 before reading them. In accordance with thepresent invention, buttons are created on the user interface alert panel50 for those messages.

Finally, the communications server 38 is queried for valid service planswhich include but are not limited to E-mail, premier services and powerup services (step 312).

(II) Process EMIT Messages.

FIG. 22 is a flow chart of the algorithm for implementing process EMITmessages procedure for the user interface alert panel 50. A message orfeed from the communications server 38 via the winsock port is initiallyapplied to the user interface alert panel 50. In step 1, the userinterface alert panel 50 determines what feed type is present, i.e.whether the message is a binary, star or EMIT type feed.

A typical binary type feed is an E-mail message. The binary feed is, asdiscussed in detail below, decompressed into a common EMIT feed andprocessed as a normal feed.

A typical EMIT type feed involves common user information such asmessages for football, scoreboard viewers, horoscope, lottery etc.

A typical star type feed involves a registry value change which createsor updates the appropriate registry key(s). In many cases, a star feedinvolves a visual change to one of the viewers 48. For example, a starfeed will create/write registry values to reflect a change inadvertisement on a particular viewer 48 (step 2). Star feeds are thusspecial feeds in that they can change register keys which point tobitmap files, source names, URL sources and so forth. In particular,referring to FIG. 23, star feeds are received by the communicationsserver 38 and passed to the user interface alert panel 50 forprocessing. The registry values updated by star feeds are read by othercomponents and the changes programmed by the star feeds are then putinto effect. In operation, the user interface alert panel 50 firstdetermines if a message is a star feed by checking the message tag todetermine if it contains the star feed indicator, preferably “*=”. Itthen parses the star feed extracting the component code and the registrykey values to be updated. The updated key values are then written to theregistry 49 where they are accessed by other components, such as theremote control 54 and the viewers 48. The basic structure of a star feedmessage is shown as follows:

FEED_TAG_V=COMPONENT_CODE_P=REGISTRY_KEY_VALUES where

FEED_TAG=the message tag code (“*=” for star feeds)

COMPONENT_CODE=a two letter code indicating to which component the starfeed applies (e.g., BB for baseball viewer, RC for remote control, etc.)

REGISTRY_KEY VALUES=one or more sequences of the following parametersfor the specified component: registry key, full file path name flag (0or 1) if the key value contains a file name, and the registry key value.

In a typical example, bitmaps for the Internet-baseball score button arechanged as well as the URL for the source:

-   -   *=.about.V=BB.about.P=Ad1;0;shared\bmps\SprtNet.bmp|TV        B;0;shared\bmps\SprtNetU.bmplAdb;0;shared\bmps\SprtNet.bmplADB;0;shared\bmps\SprtNet        U.bmp{cube root}Ad1U;2;http://www.sportsnetwork.com: 80

In the example, new bitmap files SprtNetU.bmp, SprtNet.bmp and new URLhttp://www.sportsnetwork.com are added to the registry settings for theBaseball viewer. Where a new bitmap or other file name is specified in astar feed, the new file will have been previously received from thewireless broadcast network by the communications server 38 via thebinary file transfer capability. This process is transparent to theuser.

If in step 1, it is determined that the feed is a binary type feed, thebinary feed is converted to a common EMIT string format (step 3). Whenthe message is in the EMIT string format, a record is added to themessage database by first determining the preferred viewer for the feed(step 4) and then by parsing out the EMIT string to common viewer fields(step 6).

In particular, to determine the preferred viewer for the feed (step 4),a filter field from the SYSAPPS table is compared to the EMIT string(step 5). In a typical configuration, approximately thirty viewers 48are available and the user interface alert panel 50 determines whichviewer 48 will be able to read the information. The preferred viewer isthe actual icon which will fly up to the user interface alert panel 50.To obtain a viewer alias match, the user interface alert panel 50obtains the necessary information by looking at the systems applications(SYSAPPS) table or database. By comparing a filter field from theSYSAPPS database to the EMIT string, the user interface alert panel 50determines which viewer 48 is the preferred viewer and which viewer 48should fly up to the user interface alert panel 50. For example, for afootball related message, the filter fields from the SYSAPPS databasewould be reviewed against the football related message to determine theviewer alias match.

In accordance with the present invention, level tags further define theEMIT message so when the comparison is executed in SYSAPPS table, it canbe determined which feed is for which viewer (level tag 15). A typicalsample preferred filtering string is as follows:

-   -   1=N,2=N,N=*,R!=*,1=N,2=N,h=*,R!=*

Under the sample preferred filtering string, the level tags are 1=N,2=N. By comparing 1=N, 2=N against the sample EMIT feed, it knows thatthis is a news marquee feed.

After a viewer alias match is achieved, a “Q” time flag or time flagreflecting the local time at which the message arrived at a user iscreated (step 6). The EMIT string is then parsed into common viewerfields and written to a message database 51 (step 8). The common fieldsinclude but are not limited to level tags, data and time, titles, sourceand content.

In the VGROUPS, there is a description for each viewer—a text typed outin a particular field. If you put the mouse over one of the buttons onthe alert panel, on the bottom, it will say what this is. Thatdescription is pulled from VGROUPS (step 8).

After the EMIT feed is recorded to the message database 51 (step 8), themessage is broadcast to the preferred viewer via the viewer server(steps 914). Initially, it is determined whether the viewer is running(step 9). If the viewer is running, e.g. football viewer is alreadyrunning, the message is sent directly to the viewer server (step 10).

If the viewer is not running, it is determined whether the viewer shouldbe auto launched (step 11). If auto-launch has been turned on for thisviewer, then the viewer with message playback is launched. For example,for a football type feed, the viewer preferences are reviewed and if theuser is setup for automatic launch of football, the football viewer withmessage playback is launched (step 12).

If the preferred viewer is not running, the fly-in sequence comprisinga) creating a fly-in animation object, b) playing a viewer specific wavefile, c) animating a button on the user interface alert panel 50, and d)placing a static button on the user interface alert panel 50, isinitiated (step 13). In particular, a fly-in animation object isinitially created. The fly-in animation object is an actual icon shownflying in from the opposite edge to the user interface alert panel 50.In accordance with an advantage of the present invention, fly-ins alertthe user that new data is available for viewing. Fly-ins are smallwindows displaying animated graphics representing a particular messagetype, e.g. E-mail, which moves from the bottom right part of the userdisplay screen to the user interface alert panel 50 whenever a newmessage of that particular type is received. If the user interface alertpanel 50 is in a floating state, then the fly-in animation objects fliesin from a random edge. At the same time the fly-in occurs, a viewerspecific sound wave file is initiated. A button is then animated on theuser interface alert panel 50. Finally, a static button which the usercan press to launch the viewer is placed on the user interface alertpanel 50 (step 13) and when depressed (step 14), will launch a viewerwith message playback (step 12). For example, for a football feed, afly-in animation object in the form of a football lands on top of theuser interface alert panel 50, a trumpet will play followed by a buttonanimated on the alert panel 50, which typically spins around and finallya static button appears on the alert panel 50. Fly-in graphic anddefault sound effects reflect message type. For example, for a golffeed, a golf tournament fly-in includes an image of a golf ball and thesound of a golf ball falling into a cup.

When the static button on the user interface alert panel is pressed(step 13), the viewer with message playback option is launched (step12). The message is sent to the viewer server 20 which is the actualapplication which physically launches the viewer 48.

(iii) Timely Events.

The user interface alert panel will periodically and automaticallyperform the following functions: (1) check messages that require a markfor deletion, (2) check for valid service plans, (3) check for delayedbroadcasts, and (4) implement fly-in graphics for new messages, each ofwhich is described in detail below.

(1) Check Messages that Require a Mark for Detection.

Each viewer has an entry in the SYSAPPS table that specifies thelifetime of the messages. A comparison is made to the message databaseand if a record needs to be marked for deletion, an “X” is placed in theMSG_READ field. In a preferred embodiment, this function is performedevery 24 hours. The user interface alert panel 50 will decide, based onthe information in the SYSAPPS table, how long a message should be keptfor a particular viewer 48. For example, for a football viewer, if it isonly desirable to see messages 2 days old, the user interface alertpanel 50 will check against that field and when 2 days has transpired,proceed to mark those records for deletion.

(2) Check for Valid Service Plans.

The user interface alert panel 50 will also periodically check for validservice plans. Service plans typically dictate what kinds of feeds areavailable to a user. All valid plans are recorded in the registry sothat other modules can read the information. The service plan checkingpreferably occurs at initialization and every 5 minutes thereafter. Theuser is also prompted with “plan expiration reminders.”

(3) Check for Delayed Broadcasts.

The user interface panel 50 also checks for delayed broadcasts whichallow messages to be submitted for future broadcast. If a date and timehas arrived for a delayed message, the MSG_READ field will be changedfrom “B” to “N” and a button will be placed on the user interface alertpanel 50. Delayed broadcasts are preferably checked every five minutes.The user interface panel 50 thus checks every 5 minutes for specialrecords that need to be shown to the user and then will change aparticular field in the message database—the “B” to “N” so that nexttime it will not rebroadcast the same message again.

(4) Implement Fly-in Graphics Means for New Messages.

The user interface alert panel 50 performs fly-in graphics for newmessages received from the communications server 38 if this option hasbeen selected by the user.

e. Viewer Server.

Referring to FIG. 10, the viewer server 20 provides the means by whichother components can initiate the execution of viewers 48 to displaymessages received from the broadcast network. This includes launching aparticular viewer 48 upon command, parsing messages, and providing dataextracted from the messages to the viewers 48 for display. The viewerserver 20 also acts as the interface between the viewers 48 and themessages data base 51. Functionality of the viewer server 20 is accessedthrough the Viewer Server Applications Programming Interface (VSAPI).

The viewer server 20 serves the global control preferences across allviewers and allows common controls to be shared by viewers requiringsimilar functions. In accordance with the present invention, threedifferent classes of user interface are present. One class, the viewerclass, views a particular type of information, such as baseball orelectronic mail. A second class, the viewer controller, is able to startand stop the other class, the viewers class. For example, in operation,the viewer controller resembles a remote control and enables a user toturn the viewers on and off. By utilizing the remote control, a user canthus automatically bring up a baseball viewer and baseball informationwill be automatically displayed in that viewer. For illustrativepurposes, FIGS. 24 (a), (b), (c) and (d) are depictions of a marketscoreboard viewer, a football viewer, a newspaper viewer and stockticker viewer, respectively.

In particular, in accordance with the feed format of the presentinvention, information is broken into logical information categories atthe central broadcast server 34 end which matches viewers 48 which existon the user end. The viewer server 20 ties into the viewers 48 so thatan actual feed, such as an electronic mail notification feed, baseballsports feed or headline feed, is established. In accordance with thepresent invention, the data at the server end is classified into variousformats to be able to indicate what type of a feed is present. This isaccomplished by placing tags in front of various words that break it upinto a type of information, such as a headline story, electronic mailstory, financial story, and the like. This is the basis of the EMITformat which was described previously.

When this data arrives on the user side, the viewer server 20 reads themessage including the codes and determines what type of message is beingsent. Thus a viewer that is capable of displaying baseball informationonly receives baseball information.

In accordance with an alternative embodiment of the invention, anotherviewer controller which enables both incoming information as well aspast information to be viewed can be utilized. Thus, for example, a usercan bring up a baseball game that occurred earlier in the day. Inoperation, the viewer controller talks to the viewer server 20 andindicates that it wants to bring up a particular viewer. The viewerserver 20 then activates and launches that particular viewer.

Preference viewers enable each of the viewers in a common user interfaceto show any preference information it has. The preferences viewers canbe programmed to provide various kinds of information. For example, thepreferences viewer can be directed to information relating to baseballteams. Another preferences viewer can be directed to stock marketinformation. The preferences viewer can be further programmed to provideindication of events which are currently happening. For example, if theprice of a stock, such as IBM, goes above a certain amount, such as$100.00 per share, a stock market crawl viewer will come up to theforeground immediately and flash a red light.

f. Remote Control.

The remote control 54, as shown in FIG. 7, provides a user interface foropening, closing and controlling viewers (viewer management), formaintenance of user settings and preferences, and for viewing the latestbroadcast network news. It also maintains a message history log whichallows the user to view previously received messages. Viewer controlfunctions include mute, pause and volume level control for the vieweraudio device. The remote control 54 is launched through the userinterface alert panel 50.

g. Viewers.

Viewers 18, opened through the user interface alert panel 50 or remotecontrol 54, are the means by which data received from the broadcastnetwork is displayed to the user. There are separate viewers for each ofthe different types of information provided over the network. Viewers 48are capable of reading and displaying various message formats andcontain preferences governing viewer actions. Viewers generally include,but are not limited, to graphics, data, sound files, and launch icons.

When each of the viewers 48 is installed, it goes through a registrationprocess with the viewer server 20 and the viewer server 20 storesentries in the database that keep track of each of the viewers by way ofthe viewer table. A filtering means is provided for each viewer forfiltering particular types of messages a viewer can look at. Forexample, a baseball viewer who wants to look at messages relating tobaseball information has two filtering means-one for saving informationin a database and another filter for indicating that this is the type ofinformation that should immediately be brought up to the viewer. Thus,if a viewer is interested in Dodger baseball games, such games wouldinstantly be brought up by the second filter. Moreover, if a viewerdesires to save all of the games in the national league, the filter forsaving such information would be implemented

h. User Preferences Dynamic Link Library DLL).

The User Preferences Dynamic Link Library (DLL) 53 allows the user toprecisely specify what information is to be displayed by the Viewers 48and how this information will be displayed and enters various relatedinformation, such as, the name of the user's Internet browser andactivation codes for activating service plans. For example, the user canselect the teams for which baseball or football scores will be shown,the sources of news stories, and the speed at which text is scrolled inMarquee type viewers. The User Preferences DLL 53 is accessed via theremote control 54 or through any open viewer 48.

i. Address Reprogramming and Activation Code Parsing DLL

The address reprogramming and activation code parsing DLL 57 parses andvalidates service plan activation codes received over the wirelessbroadcast network or entered by the user and address reprogrammingmessages received over the network. Activation codes and addressreprogramming messages control what broadcast network messages the useris allowed to receive. The code parsing DLL is used by thecommunications server 38, remote control 54 (FIG. 11) and userpreferences DLL 53.

j. Error Logging.

Error Logging 55 provides a means by which all other components canrecord the occurrence of errors or potential problem conditions in a logfile. The error log can be a valuable aid to technical support indiagnosing problems a user may encounter in running software: The logfile is preferably in ASCII text format and can be viewed by any wordprocessor or text editor, such as, Microsoft Word or Notepad.

k. Operation of Received Message Data Flow.

In operation, when a new message is received from the broadcast network,the communications server 38 receives a new data block from the wirelessdevice 42 via the driver 44 and wireless interface 46. Depending on thedata block type, the communications server 38 either processes itlocally or passes it to the user interface alert panel 50. The userinterface alert panel 50 receives a data block from the communicationsserver 38, stores it in the messages data base 51, displays an icon forthe particular message type and generates a fly-in or other means fornotification such as an audio and/or visual alert for the new message ifthat option is selected by the user. If the user clicks on the icon forthe new message, the user interface alert panel 50 sends a command tothe viewer server 20 to open the appropriate viewer 48 to display thecontents of the message. Alternatively, a viewer 48 to display the newmessage can be launched through the remote control 54. Upon receivingthe command to open a viewer 48, the viewer server 20 parses themessage, launches the viewer 48 and passes to it the data to bedisplayed. The viewer 48 displays the message data received from theviewer server 20 and commands the viewer server 20 to mark the messageas “read” in the data base. At any step in the process, if an errorcondition is detected, it is recorded in the error log 55.

1. E-mail Alerts.

FIG. 13 is a flow chart of an algorithm for generating and processingE-mail alerts in accordance with the present invention. In accordancewith the present invention, a user may be instantly notified of E-mailmessages without being connected to an E-mail service provider.Referring to FIG. 13, when a user receives an E-mail message (step 240),the user's provider sends an E-mail notification to central broadcastserver (step 244). Upon receiving this notification, the centralbroadcast server transmits an E-mail alert message to the user'scomputer through the broadcast network (step 246). When the alertmessage is received by the software application in the user's computer,an animated visual and/or audio notification is triggered, or the e-mailviewer automatically pops up, depending on the mode of operationselected by the user (step 248). In the first case, an E-mail alert iconappears on the alert panel and the E-mail viewer can be launched in thesame manner as viewers for news alerts (i.e. by clicking the icon orthrough the remote control). An E-mail alert contains the provider IDcode number and the “From” name (E-mail address of the sender). Oneskilled in the art will recognize that the alert is not limited to theprovider ID code number and name. Rather, the E-mail alert could includea header, whole message etc. The E-mail viewer displays an iconcorresponding to the provider ID, the date and time the alert wasreceived, and the sender's E-mail address. To read an E-mail message,the user simply clicks the associated icon (step 250) which causes theE-mail program for the particular provider to be launched (step 252).The user's E-mail can then be retrieved through a wired connection tothe E-mail provider (step 254). One skilled in the art will recognizethat E-mail alerts may be received from more than one source. Forexample, a user may receive an E-mail alert from an Internet E-mailprovider and America On-Line or CompuServe.

User Wireless On-Line Guide.

In accordance with the present invention, a wirelessly transmittedon-line guide provides a detailed schedule of when certain information,such as upcoming events, forums and chat sessions, will be transmitted.With ongoing wireless broadcasts, the information in the on-line guideis maintained up-to-date. In particular, the on-line guide can notify auser just before an event is about to happen on the Internet, thereforeeliminating the need to manually keep track of upcoming events. The userindicates which events are important, and the on-line guide reminds theuser via an alarm including a visual and sound alert of the events at apredetermined time, such as minutes, before each occurs. The user canthen click on the event and a connection to the event's location on theInternet is made through the user's standard Internet browser andInternet service provider. Alternatively, a user can specify that aconnection to the event location via the user's Internet browser andInternet service provider be made automatically when the selected eventis about to occur.

URL Broadcast and Hot Links.

Referring to FIG. 1, the URL broadcast and hot links 22 back to theinformation source 12 is shown. In accordance with the presentinvention, very short notification centric messages such as newsheadlines from information sources 12, such as Internet, on-lineservices and other information providers, are transmitted to thecomputer 14 by wireless transmission. A user, from a computer 14, canmake a wired connection 24 back to the information source 12 to obtainmore detailed information. In accordance with the present invention,attached to each of the notification centric messages is a universalresource locator (URL) code 22 as well as related Internet addressinformation. This allows the user, by clicking on an icon that isembedded in the message, to make a wired or wireless connection 24,either through a modem, TC/IP or LAN-type connection, and automaticallyestablish a link back to the information source 12. The user can thus godirectly to the specific site that the information came from. In atypical example, the specific site can be ten pages deep. Thus, inaccordance with an advantage of the present invention, informationsources 12 such as the Internet and other on-line services, which aretypically overwhelming particularly with respect to locating a story,are easily accessible. The present invention allows a user to pinpointand locate the specific information the user was alerted to. The usercan thus hit one button which establishes the connection 24 and takesthe user directly to the location where the information is located.

FIG. 12 is a flow chart of an algorithm for extracting and processingthe Internet source URL for messages broadcast over the wirelesscommunication network illustrated in FIG. 1. In accordance with thepresent invention, the Internet source for a news item alert isbroadcast as part of the alert message itself (step 260). The messagecontains a number of tags delineating the various parts of the message.In the preferred embodiment, tags “S=” and “U=” identify the Internetsource where detailed information about the news alert may be found. Forthose messages which always originate from the same list of defaultsources, the “S” tag only applies (step 264). Following the “S=” tag isa letter code corresponding to the Internet URL. For example, the lettercode for an alert from the Reuters News Service is “W”. The actual URL,http://www.reuters.com, is obtained by using the letter code as an indexinto the alert source database of the present invention (step 266).URL's in the alert source database may be updated by Star Feed messagesin case changes in the default URL's are necessary (step 268). Formessages whose sources are not limited to a default set, the “U” tagconveys the Internet source (step 272). Following the “U=” tag is theactual URL source of the message (e.g. U=http://www.universalnews.com).Wireless throughput is conserved by transmitting the full URL only inthose cases where the source is not restricted to being a member of afixed set. The source URL is displayed at the end of the alert messagetext (step 270). A user with a wired or wireless connection to theInternet can go directly to the alert source simply by clicking the URL(step 270). A connection to the alert source on the Internet is thusprovided.

Over the Air Programming.

Services received and various operational characteristics at the userend can be programmed by the central broadcast server 34 through thewireless broadcast network. This is accomplished primarily through StarFeeds and service activation/deactivation codes. Star Feeds, which havebeen described in detail above, are special messages which allowparameters controlling viewer operation to be modified from the centralbroadcast server 34. Activation/deactivation codes determine whichservices a user is allowed to receive. For example, if a user subscribesto e-mail alerts, this service can be turned on for that specific userthrough an e-mail alert activation code message transmitted to the usersite via the wireless broadcast network. Conversely, if a user stopssubscribing to a service, that service can be turned off through adeactivation code message. Additionally, the capability exists forbinary file transfer from the central broadcast server 34 to add newexecutable files or replace existing ones with newer versions. In thisway, new or updated viewers can be installed directly through thewireless broadcast network.

Billing and Activation Server.

Referring to FIG. 1, users may remotely request additional services ormodify existing services from the personal computer 14 or othercomputing device through a billing and activation server 64 whichcommunicates with the central broadcast server 34. By telephone or modemcommunication, a user can contact the billing and activation server 64which in turn communicates with the central broadcast server 34. Oncesuch a request has been processed by the central broadcast server 34,the server 34 wirelessly transmits an activation code directly to themessage server 18 to activate additional or modify existing services. Bymatching the serial number contained in the broadcast message with theusers serial number, the user software will program a receiver board inthe user receiver 32 to begin receiving additional or modified services.Thus according to an advantage of the present invention, users canremotely adjust services from their personal computers 14 or othercomputing devices.

Simultaneous Wired Transmission.

In accordance with an alternate embodiment of the invention, theinformation provided from the information sources 12 and transmitted tothe central broadcast server 34 to be consolidated in accordance withthe present invention and then transmitted wirelessly nationwide topersonal computers 14 and other computing devices as described in detailabove can also be sent simultaneously via a wired connection to the samepersonal computers 14 and computing devices having Internet/World WideWeb access (direct or via on-line service providing Internet and WorldWide Web access). In particular, the data processed at the centralbroadcast server 34, in addition to being transmitted wirelessly, issimultaneously placed on Web pages on the Internet. A user can thusconnect to the Web via the Internet. In operation, to access data sentby the central broadcast server 34, a user makes a connection via theInternet to the World Wide Web server and delivers its URL request. Therequest is acknowledged by the Web server, which then sends therequested data to the user. Thus, a user can receive real timedata/information in the form of voice, video data or a combinationthereof by accessing the World Wide Web.

It will be appreciated by persons skilled in the art that the presentinvention is not limited to what has been shown and describedhereinabove, nor the dimensions of sizes of the physical implementationdescribed immediately above.

The invention claimed is:
 1. A method for transmitting data from aninformation provider to selected remote computing devices, wherein theinformation provider provides one or more categories or subcategories ofinformation to remote computing devices for viewing on the selectedremote computing devices, the method comprising: the informationprovider communicating with a central broadcast server; the informationprovider providing data to the central broadcast server for the centralbroadcast server to parse by one or more parsers, build data blocks,assign addresses, and transmit data to be viewed by a viewer specific tothe information provider in each of the selected remote computingdevices.
 2. The method for transmitting data to selected remotecomputing devices of claim 1 further comprising: the informationprovider receiving requests from at least one of the viewers for moredetailed information responsive to receipt of the data by the viewersand the information provider transmitting the requested detailedinformation to the requesting viewers.
 3. The method for transmittingdata to selected remote computing devices of claim 1 wherein the viewerspecific to the information provider is adapted to receive only databased upon data from the information provider.
 4. The method fortransmitting data to selected remote computing devices of claim 1wherein the data includes information to cause an automated connectionback to the information provider for obtaining additional information.5. The method for transmitting data to selected remote computing devicesof claim 4 wherein the data includes information to cause a connectionback to the information provider for obtaining additional information.6. The method for transmitting data to selected remote computing devicesof claim 4 wherein the data includes information to cause a connectionback to the information provider for obtaining additional information inresponse to a single user action.
 7. The method for transmitting data toselected remote computing devices of claim 6 wherein the single useraction consists of a click on an icon.
 8. The method for transmittingdata to selected remote computing devices of claim 1 wherein the viewerspecific to the information provider is adapted to receive data basedupon data from plural information providers.
 9. A method fortransmitting data from an information provider comprising: theinformation provider providing one or more related categories orsubcategories of information as to selected remote computing devices forviewing on the selected remote computing devices; the informationprovider communicating with a central broadcast server; the informationprovider providing data of the one or more categories or subcategoriesof information to the central broadcast server for the central broadcastserver to parse by one or more parsers, build data blocks, assignaddresses, and transmit data to a viewer specific to the informationprovider in each of the selected remote computing devices, whether theselected remote computing devices are online or offline to theinformation provider.
 10. The method of claim 9 comprising theinformation provider providing the viewers to the selected remotecomputing devices.
 11. The method of claim 9 further comprising: theinformation provider receiving requests from at least one of the viewersfor more detailed information responsive to receipt of the messages bythe viewers; and the information provider transmitting the requesteddetailed information to the requesting viewers.
 12. The method of claim11, wherein the viewers can be configured to play at least one of sound,video and animations, and the information provider transmitting therequested detailed information including at least one of sound, videoand animations in accordance with the configuration.
 13. The method ofclaim 9, wherein the viewers can be configured to play at least one ofsound, video and animation stored on the selected remote computingdevices.
 14. The method of claim 9, wherein the information providercauses the viewers to play at least one of a predefined sound, apredefined video and a predefined animation upon a predefined action onthe selected remote computing devices.
 15. The method of claim 9,wherein the information provider causes the viewers to play at least oneof a user-defined sound, a user-defined video and a user-definedanimation upon a predefined action on the selected remote computingdevices.
 16. A server system for causing data to be transmitted toselected remote computing devices comprising: a first gateway configuredto receive data from plural information providers, wherein eachinformation provider comprises a provider of one or more relatedcategories or subcategories of information; one or more parsersconfigured to break or divide data into components whose content orformat can be analyzed, processed, or acted upon; a second gatewayconfigured to build data blocks from data, and to assign addresses tothe data blocks, wherein the data blocks include sufficient informationto be effectively communicated to a third gateway configured to preparethe data blocks for transmission as messages to the selected remotecomputing devices to be viewed by viewers respectively specific to theinformation providers in each of the selected remote computing devices.17. A system for transmitting data to selected remote computing devicescomprising: a server system including: a first gateway configured toreceive data from plural information providers, wherein the informationproviders comprise providers of data for the selected remote computingdevices for one or more related categories or subcategories ofinformation; one or more parsers configured to break or divide data intocomponents whose content or format can be analyzed, processed, or actedupon; a second gateway configured to build data blocks from data, and toassign addresses to the data blocks; a third gateway configured toprepare the data blocks for transmission as messages to the selectedremote computing devices; a transmission gateway for transmitting themessages to the selected remote computing devices for instantaneouslynotifying the selected remote computing devices of receipt of datawhether the selected remote computing devices are online or offline tothe information providers of the data, wherein the messagescorresponding to the data received by the first gateway are transmittedto the selected remote computing devices identified by the content ofthe received data.
 18. The system of claim 17 wherein the data comprisesat least one of notifications regarding E-mail arrival, stock pricesreaching specified values, Internet telephone calls, chats and meetingnotices.
 19. The system of claim 17 wherein the information providersconsist of online information sources.